#ifndef IDIGITAL_ANALOG_CONVERTER
#define	IDIGITAL_ANALOG_CONVERTER
// ***************************************************************************
// CHANGE LOG
//
// ***************************************************************************

// ***************************************************************************
// ***************************************************************************
// Section: Includes
// ***************************************************************************
// ***************************************************************************

class IDigitalAnalogConverter
{
  public:
	/*! \brief Length of word for SPI
	 */
	enum class Commands
	{
		Mode8Bits = SPI_CONFIG_MODE8, /*!< 8-bit words */
				Mode16Bits = SPI_CONFIG_MODE16, /*!< 16-bit words */
				Mode32Bits = SPI_CONFIG_MODE32 /*!< 32-bit words */

	};

	IDigitalAnalogConverter();
	virtual ~IDigitalAnalogConverter();
	virtual void Write(unsigned char channels, float value, bool update = true) = 0;
	virtual void Reset() = 0;
	virtual void Update(unsigned char channels) = 0;
	virtual void Clear(unsigned char value) = 0;
	virtual void PowerDown(bool isNotPowered = false) = 0;
	virtual void SetReferenceVoltage(float referenceVoltage) = 0;
  private:

};

#endif

